Disk drive with improved spin-up control

ABSTRACT

A disk drive is disclosed comprising a head actuated over a disk, and a spindle motor operable to rotate the disk. The spindle motor operates according to a plurality of electrical cycles over a single revolution of the spindle motor, where each electrical cycle spans a cycle period. A plurality of the cycle periods are measured, at least two of the cycle periods are combined, and a rotation speed of the spindle motor is measured based on the combined cycle periods.

BACKGROUND

Disk drives comprise a disk and a head connected to a distal end of an actuator arm which is rotated about a pivot by a voice coil motor (VCM) to position the head radially over the disk. The disk comprises a plurality of radially spaced, concentric tracks for recording user data sectors and servo sectors. The servo sectors comprise head positioning information (e.g., a track address) which is read by the head and processed by a servo control system to control the actuator arm as it seeks from track to track.

A spindle motor rotates the disk (or disks) at a high speed so that the head essentially flies over the disk surface on an air bearing. When the disk drive is powered on, a spin-up operation is executed in order to spin up the disk to the operating speed before loading the head over the disk surface. It is desirable to spin up the disk as fast as possible in order to minimize the delay before a host may access the disk drive. In addition, it may be desirable to achieve a substantially consistent spin-up time across a family of disk drives so that a disk drive manufacturer may provide an accurate specification for the spin-up time, thereby enabling the design of storage systems based on the spin-up specification.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 1C is a flow diagram according to an embodiment wherein a plurality of electrical cycle periods of the spindle motor are measured, at least two of the cycle periods are combined, and a rotation speed of the spindle motor is measured based on the combined cycle periods.

FIG. 1D shows an embodiment wherein the cycle periods are combined using a moving average filter that averages N consecutive electrical cycle periods of the spindle motor.

FIGS. 2A and 2B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 2C is a flow diagram according to an embodiment wherein a spin-up gain is generated as a function of a measured rotation speed of the spindle motor, wherein the function comprises a polynomial having a degree greater than one.

FIG. 2D shows control circuitry for spinning up the spindle motor based on the spin-up gain according to an embodiment.

FIG. 2E shows a polynomial of degree greater than one for generating the spin-up gain as a function of the measured rotation speed of the spindle motor according to an embodiment.

FIGS. 3A and 3B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 3C is a flow diagram according to an embodiment wherein a feed-forward spin-up control is generated based on a measured rotation speed of the spindle motor.

FIG. 3D shows control circuitry for spinning up the spindle motor based on the feed-forward spin-up control according to an embodiment.

FIGS. 4A and 4B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 4C is a flow diagram according to an embodiment wherein the spindle motor is spun up based on a speed command profile that ensures a minimum spin-up time and a limited power consumption under a worst case environmental condition.

FIG. 4D shows control circuitry for spinning up the spindle motor based on the speed command profile according to an embodiment.

FIG. 4E shows an example speed command profile according to an embodiment.

FIGS. 5A and 5B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 5C is a flow diagram according to an embodiment wherein the spindle motor is spun up over a second fraction of a spin-up time based on an initial measured rotation speed of the spindle motor.

FIG. 5D shows control circuitry for spinning up the spindle motor over the second fraction of a spin-up time according to an embodiment.

FIG. 5E shows how the second fraction of the spin-up time may be determined based on an initial measured rotation speed of the spindle motor according to an embodiment.

FIGS. 6A and 6B show a disk drive according to an embodiment comprising a head actuated over a disk, and a spindle motor for rotating the disk.

FIG. 6C is a flow diagram according to an embodiment wherein after spinning up the spindle motor, an integrator of a constant-speed controller is initialized based on a state of a spin-up controller.

FIG. 6D shows control circuitry for spinning up the spindle motor using a spin-up controller according to an embodiment.

FIG. 6E shows control circuitry for spinning the disk using a constant-speed controller after completing the spin-up operation according to an embodiment.

FIG. 7 shows control circuitry for spinning up the spindle motor using a combination of the above-described techniques according to an embodiment.

DETAILED DESCRIPTION

FIGS. 1A and 1B show a disk drive according to an embodiment comprising a head 2A actuated over a disk 4, and a spindle motor 6 operable to rotate the disk 4. The spindle motor 6 operates according to a plurality of electrical cycles over a single revolution of the spindle motor 6, where each electrical cycle spans a cycle period. The disk drive further comprises control circuitry 8 operable to execute the flow diagram of FIG. 1C, wherein a plurality of the cycle periods are measured (block 10), at least two of the cycle periods are combined (block 12), and a rotation speed of the spindle motor is measured based on the combined cycle periods (block 14).

In the embodiment of FIG. 1B, the disk surface 4A comprises a plurality of servo tracks 16 defined by servo sectors 18 ₀-18 _(N), wherein data tracks are defined relative to the servo tracks at the same or different radial density. The control circuitry 8 processes a read signal emanating from the head 2A to demodulate the servo sectors 18 ₀-18 _(N) and generate a position error signal (PES) representing an error between the actual position of the head and a target position relative to a target track. The control circuitry 8 filters the PES using a suitable compensation filter to generate a control signal 20 applied to a voice coil motor (VCM) 22 which rotates an actuator arm about a pivot in order to actuate the head 2A radially over the disk surface 4A in a direction that reduces the PES. The servo sectors 18 ₀-18 _(N) may comprise any suitable head position information, such as a track address for coarse positioning and servo bursts for fine positioning. The servo bursts may comprise any suitable pattern, such as an amplitude based servo pattern or a phase based servo pattern.

During a spin-up operation, the control circuitry 8 measures a rotation speed of the spindle motor 6 which is compared to a target rotation speed of a speed command profile. A control signal 24 is generated based on the difference (error) so that the rotation speed of the spindle motor substantially follows the speed command profile until reaching the spin-up rotation speed. The performance of the spin-up operation may depend on the accuracy of the measured rotation speed of the spindle motor.

In one embodiment, the rotation speed of the spindle motor may be measured by evaluating the back electromotive force (BEMF) zero-crossings in each winding of the spindle motor. The spindle motor typically operates according to a plurality of electrical cycles over a single revolution, wherein the total number of electrical cycles depends on the number of pole-pairs employed in the spindle motor. For example, a 6-pole-pair spindle motor will generate six electrical cycles over a single revolution. Accordingly, at each BEMF zero crossing representing the end of an electrical cycle, the rotation speed of the spindle motor may be represented as:

${{SpindleSpeed}\lbrack{RPM}\rbrack} = \frac{60}{{cycle\_ period} \cdot \left\lbrack {\# \mspace{14mu} {of\_ pole}{\_ pairs}} \right\rbrack}$

However, due to a misalignment of the poles, measuring the rotation speed of the spindle motor based on a single electrical cycle period results in a noisy measurement, thereby reducing the performance of the spin-up operation. Accordingly, in one embodiment the noise due to the misalignment of the poles is attenuated by combining at least two of the cycle periods, and then measuring the rotation speed of the spindle motor based on the combined cycle periods.

FIG. 1D shows control circuitry according to an embodiment wherein the spindle motor operates according to N electrical cycles over a single revolution of the spindle motor, and the cycle periods are combined by summing N consecutive cycle periods. Block 26 measures an electrical cycle period 28 of the spindle motor, such as by detecting a zero crossing in the BEMF voltage generated by the windings. The measured electrical cycle periods 28 are shifted into a delay line 30, and after measuring N electrical cycle periods, a mechanical cycle period 32 is generated as the sum of the last N measured electrical cycle periods 28. The mechanical cycle period 32 is converted at block 34 into a measured rotation speed 36 in rotations per minute (RPM). The measured electrical cycle periods are accumulated 38 to generate a time index 40 used to index a speed command profile (SCP) 42 that outputs a target rotation speed 44 over a spin-up interval. The measured rotation speed 36 is subtracted from the target rotation speed 44 to generate an error signal 46 processed by a controller 48. The controller 48 generates a control signal 50 applied to a driver 52 in order to generate the control signal 24 applied to the spindle motor 6 to thereby accelerate the spindle motor 6 so that the rotation speed substantially follows the target speed output by the SCP 42.

In the embodiment of FIG. 1D, as each new electrical cycle period 28 is measured at block 26, the mechanical cycle period 32 is updated based on the running N consecutive electrical cycle periods. That is, the delay line 30, adder 54, and scalar 34 implement a moving average filter (MAF) of the form:

${{SpindleSpeed}\lbrack{RPM}\rbrack} = \frac{60}{\left\lbrack {1 + z^{- 1} + {z^{- 2}\mspace{14mu} \ldots}\mspace{14mu} + z^{- {({N - 1})}}} \right\rbrack \cdot {cycle\_ period}}$

The moving average filter represented by the above equation effectively filters out the noise in the measured rotation speed of the spindle motor caused by the misalignment of the poles. In one embodiment, the above moving average filter may be modified to sum fewer or more than the N electrical cycle periods over a revolution of the spindle motor.

FIGS. 2A and 2B show a disk drive according to an embodiment wherein the control circuitry 8 is operable to execute the flow diagram of FIG. 2C during a spin-up operation. A rotation speed of the spindle motor is measured (block 56), and a gain is generated as a function of the measured rotation speed (block 58), wherein the function comprises a polynomial having a degree greater than one. The spindle motor is spun up based on the gain (block 60).

FIG. 2D shows control circuitry for spinning up the spindle motor according to an embodiment wherein block 62 measures a rotation speed 64 of the spindle motor 6, such as by measuring the electrical cycle periods as described above. A function 66 generates a gain Kfbk 68 that is used to spin up the spindle motor, where in the embodiment of FIG. 2D, the gain Kfbk 68 is multiplied by the error signal 46 to generate the control signal 50. That is, the control circuitry in the embodiment of FIG. 2D comprises at least a proportional controller for spinning up the spindle motor, wherein the gain of the proportional controller is generated as a function of the measured rotation speed of the spindle motor.

FIG. 2E illustrates an embodiment wherein the function 66 for generating the gain Kfbk in FIG. 2D comprises a polynomial having a degree greater than one. In the example of FIG. 2D, the function 66 comprises a quadratic polynomial; however, other embodiments may use a higher degree polynomial. In one embodiment, the gain Kfbk may be computed for a number of different rotation speeds based on a design bandwidth of the control loop using a complex equation, which consists of the transfer functions of the spindle motor 6, motor driver 52, and the function for measuring the rotation speed of the spindle motor (e.g., the MAF described above). After generating the gain Kfbk for the number of different rotation speeds, the gain values may be fitted to a curve representing a polynomial having a degree greater than one. The following is an example derivation of the gain Kfbk based on the measured rotation speed and the bandwidth of the control loop:

Define  Units: ${{RPM}:={{\frac{2\; \pi \mspace{14mu} {rad}}{60\mspace{14mu} s}\mspace{14mu} {kRPM}}:={{1000\mspace{14mu} {RPM}\mspace{14mu} {gmf}}:={10^{- 3}{kgf}}}}}\mspace{14mu}$ $j:=\sqrt{- 1}$ Motor  Parameters: Inertia := 44  gm-cm² = 4.4 × 10⁻⁶m² ⋅ kg ${K_{e}:={{0.61\frac{V}{kRPM}\mspace{14mu} K_{t}}:={K_{e} = {5.825 \times {10^{- 3} \cdot \frac{N \cdot m}{A}}}}}}\mspace{14mu}$ $K_{f}:={0.045\frac{{gmf} \cdot {cm}}{kRPM}}$ R_(w) := 3.6  Ω  R_(i) := 0.124  Ω  R_(d) := 0.648 ⋅ Ω L_(w) := 0.6  mH  R_(i) := 0.124  Ω  R_(d) := 0.648 ⋅ Ω L_(w) := 0.6  mH  R_(a) := R_(w) + R_(i) + R_(d) = 4.372  Ω ${Speed}_{0}:={{5400\mspace{14mu} {RPM}\mspace{14mu} \omega_{0}}:={{Speed}_{0} = {565.487 \cdot \frac{rad}{s}}}}$ $T_{s}:={\frac{2\; \pi}{\omega_{0}} = {0.011\mspace{14mu} s}}$ ${Ecycles}:={{6\mspace{14mu} \omega_{e\; 0}}:={{\omega_{0} \cdot {Ecycles}} = {3.393 \times {10^{3} \cdot \frac{rad}{s}}}}}$ $T_{es}:={\frac{2\; \pi}{\omega_{0} \cdot {Ecycles}} = {1.852 \cdot {ms}}}$ SpClockFreq := 100  MHz  SpClockDiv := 32 $V_{supply}:={{5\mspace{14mu} V\mspace{14mu} {nBitsKval}}:={{12\mspace{14mu} f_{olvw}}:={\frac{1}{48T_{es}} = {11.25 \cdot {Hz}}}}}$ $K_{d}:={{\frac{1}{1\mspace{14mu} {RPM}} \cdot \frac{1}{1} \cdot \frac{V_{supply}}{{}_{}^{}{}_{- 1}^{}}} = {{{0.012 \cdot V \cdot s}\mspace{20mu} {MarginLT}}:=0.8}}$ MarginK_(e) := 0.9 Basic  Calculations: ${{Electric}\mspace{14mu} {Pole}\text{:}\mspace{14mu} {Pole}_{e}}:={\frac{R_{a}}{L_{w}} = {7.287 \times {10^{3} \cdot {Hz}}}}$ ${{Equivalent}\mspace{14mu} {Impedance}\text{:}\mspace{14mu} R_{eq}}:={\frac{\left( {\omega_{e\; 0} \cdot L_{w}} \right)^{2} + R_{a}^{2}}{R_{a}} = {5.32\mspace{14mu} \Omega}}$ ${{Mechaniacal}\mspace{14mu} {Pole}\text{:}\mspace{14mu} {Pole}_{m}}:={\frac{{K_{f} \cdot R_{eq}} + {K_{e} \cdot K_{t}}}{{Inertia} \cdot R_{eq}} = {1.545 \cdot {Hz}}}$ ${Gain}:={\frac{K_{t}}{{K_{f} \cdot R_{eq}} + {K_{t} \cdot K_{e}}} = {161.032 \cdot \frac{A}{m \cdot N}}}$ ${{Motor}\mspace{14mu} {Transfer}\mspace{14mu} {{function}:\mspace{14mu} {G_{m}(s)}}}:=\frac{K_{t}}{{s \cdot {Inertia} \cdot R_{eq}} + {K_{f} \cdot R_{eq}} + {K_{t} \cdot K_{e}}}$ ${{Moving}\mspace{14mu} {Average}\mspace{14mu} {Filter}\text{:}\mspace{14mu} {{MAFz}(z)}}:=\frac{z^{5} + z^{4} + z^{3} + z^{2} + z + 1}{6 \cdot z^{5}}$ ${{MAFs}(s)}:={{MAFz}\left( \frac{2 + {s \cdot T_{es}}}{2 - {s \cdot T_{es}}} \right)}$ Open  Loop  Transfer  function: ${G_{open}(s)} = {{G_{m}(s)} \cdot {{MAFs}(s)} \cdot \begin{pmatrix} {{K_{fbk} \cdot K_{d}} - {K_{e} \cdot {MarginK}_{e}} -} \\ \frac{R_{a} \cdot K_{f} \cdot {MarginLT}}{K_{t}} \end{pmatrix}}$ ${{PI}\mspace{14mu} {Controller}\mspace{14mu} {Coefficents}\text{:}\mspace{14mu} f_{olvw}} = {{{11.25 \cdot {Hz}}\mspace{14mu} \omega_{olbw}}:={{2\; \pi \; f_{olbw}} = {{{70.686 \cdot \frac{rad}{s}}K_{fbk}}:={\frac{\begin{matrix} {1 + {{{{G_{m}\left( {j \cdot \omega_{olbw}} \right)} \cdot {{MAFs}\left( {j \cdot \omega_{olbw}} \right)}}} \cdot}} \\ \left( {{K_{e} \cdot {MarginK}_{e}} + \frac{R_{a} \cdot K_{f} \cdot {MarginLT}}{K_{t}}} \right) \end{matrix}}{{K_{d} \cdot {G_{m}\left( {j \cdot \omega_{olbw}} \right)} \cdot {{MAFs}\left( {j \cdot \omega_{olbw}} \right)}}} = 25.457}}}}$

In the above example, the gain Kfbk=25.457 has been computed for a measured rotation speed of 5400 RPM. The following table shows the gain Kfbk computed using the above derivation for different measured rotation speeds of the spindle motor. The gain Kfbk values in the table may then be fitted to a curve represented by the following polynomial:

y=0.0041x ²+0.5814x+0.924

Spindle Sample Open Loop Speed (RPM) Frequency (Hz) Bandwidth (Hz) K_(fbk) 300 30 0.63 1.743 400 40 0.83 2.081 500 50 1.04 2.448 750 75 1.56 3.38 1000 100 2.08 4.33 1500 150 3.13 6.304 1750 175 3.65 7.305 2000 200 4.17 8.326 2250 225 4.69 9.368 2500 250 5.21 10.435 3000 300 6.25 12.651 3500 350 7.29 14.995 4500 450 9.38 20.173 5400 540 11.25 25.457

FIGS. 3A and 3B show a disk drive according to an embodiment wherein the control circuitry 8 is operable to execute the flow diagram of FIG. 3C during a spin-up operation. A rotation speed of the spindle motor is measured (block 70), and feed-forward control is generated based on the measured rotation speed (block 72). The spindle motor is spun up based on the feed-forward control (block 74).

FIG. 3D shows control circuitry for spinning up the spindle motor according to an embodiment wherein a feedback controller 76 generates a feedback control signal 78 based on the error signal 46. The feedback controller 76 may implement any suitable feedback algorithm, such as the proportional control shown in FIG. 2D. The feedback control signal 78 is adjusted by a feed-forward control signal 80 to generate the control signal 50 applied to the driver 52. The feed-forward control signal 80 may compensate for one or more disturbances injected into the control loop, such as a BEMF of the spindle motor 6, or a drag torque of the spindle motor 6.

In one embodiment, the BEMF of the spindle motor 6 counteracts the acceleration torque of the control signal 50, thereby requiring a higher control signal (e.g., a higher driving current) in order to apply the desired acceleration torque to the spindle motor 6. In one embodiment, the BEMF of the spindle motor 6 increases proportionally with the rotation speed Nm of the spindle motor, and therefore in the embodiment shown in FIG. 3D, a first feed-forward control signal 82 is generated by multiplying the measured rotation speed 64 by a gain Ke 84 representing the BEMF constant of the spindle motor 6. In one embodiment, the BEMF constant of the spindle motor varies based on the ambient temperature, and therefore in the embodiment of FIG. 2D the gain Ke 84 is adjusted based on a measured ambient temperature T of the disk drive.

In one embodiment, the spindle motor 6 may exhibit a counteracting drag torque that may also vary based on the rotation speed of the spindle motor 6 according to:

$\left( {{LT} = {f\left\lbrack {T,{Nm}} \right\rbrack}} \right) \cdot \frac{{Rw}\lbrack T\rbrack}{{Kt}\lbrack T\rbrack}$

where LT represents the load torque which is a function of the rotation speed Nm and ambient temperature T, Rw represents a winding resistance which is a function of ambient temperature T, and Kt represents a torque constant of the spindle motor which is a function of ambient temperature T. Accordingly, the control circuitry of FIG. 3D comprises blocks 86 and 88 representing the above equation to generate a second feed-forward control signal 90 added to the first feed-forward control signal 82 to generate a composite feed-forward control signal 80. Any suitable function may be employed to compute the load torque (LT) as a function of the rotation speed Nm and the ambient temperature T, wherein in one embodiment the function may be generated by curve fitting nominal load torque measurements over a number of different ambient temperatures taken for a representative subset of spindle motors.

FIGS. 4A and 4B show a disk drive according to an embodiment wherein the control circuitry 8 is operable to execute the flow diagram of FIG. 4C during a spin-up operation. A rotation speed of the spindle motor is measured (block 92), and a control signal is generated based on the measured rotation speed and a speed command profile (block 94). The spindle motor is spun up based on the control signal (block 96).

FIG. 4D shows control circuitry for spinning up the spindle motor according to an embodiment wherein the speed command profile 42 is generated to ensure a minimum spin-up time and a limited power consumption under a worst case environmental condition. A controller 98 generates the control signal 50 based on a difference (error signal 46) between the measured rotation speed 64 of the spindle motor and a target rotation speed generated by the speed command profile 42. FIG. 4E shows an example of a speed command profile 42 comprising a target speed as a function of the spin-up time. The speed command profile may be generated in any suitable manner, such as by empirically evaluating a representative subset of spindle motors over worst case environmental conditions, such as worst case ambient temperature. In another embodiment, the speed command profile may be computed theoretically based on nominal technical characteristics of the spindle motor, as well as a nominal characterization of the spindle motor under worst case environmental conditions. In one embodiment, the speed command profile may account for a maximum current draw of the spindle motor. By taking into account the worst case environmental conditions, together with the maximum current draw of the spindle motor, the speed command profile 42 may be generated that will ensure a minimum (as well as consistent) spin-up time and a limited power consumption across all operating conditions.

FIGS. 5A and 5B show a disk drive according to an embodiment wherein the control circuitry 8 is operable to execute the flow diagram of FIG. 5C during a spin-up operation. A rotation speed of the spindle motor is measured (block 106), and a control signal is generated based on a difference between the measured rotation speed and a target rotation speed (block 108). The spindle motor is spun-up based on the control signal generated over a second fraction of a spin-up time (block 110), wherein the target rotation speed is generated based on a speed command profile and the second fraction of the spin-up time. The second fraction of the spin-up time is determined based on an initial measured rotation speed of the spindle motor (block 104) prior to generating the control signal.

In the embodiment of FIG. 5C, the control circuitry 8 begins spinning up the spindle motor during a first fraction of the spin-up time using an open loop control system (block 100). After the first fraction of the spin-up time, the initial rotation speed of the spindle motor is measured (block 102) so that the second fraction of the spin-up time may be determined (block 104). In one embodiment illustrated by the speed command profile shown in FIG. 5E, the spindle motor is spun-up over a spin-up time with a corresponding target speed increasing over time. During the first fraction of the spin-up time, the spindle motor is controlled open loop (independent of the control signal 50), wherein at the end of this time the spindle motor will be rotating at an unknown rotation speed. Before enabling the closed loop control circuitry of FIG. 5D, the initial rotation speed of the spindle motor is measured so that a corresponding point on the speed command profile of FIG. 5E may be determined, and so that the time index 40 may be appropriately initialized.

In the embodiment illustrated in FIG. 5E, a delta is added to the initial measured rotation speed so that an initial target rotation speed when enabling the closed loop control circuitry of FIG. 5D is higher than the initial measured rotation speed. In this manner, the initial target rotation speed ensures the spindle motor continues accelerating from the initial measured rotation speed after enabling the control circuitry of FIG. 5D. After adding the delta to generate the initial target rotation speed, the corresponding time in the speed command profile may be determined. The time 38 in FIG. 5D may be initialized to zero, and an offset 112 added to the time 38 that is based on the initial measured rotation speed 114 of the spindle motor. Referring again to FIG. 5E, after adding the offset 112 to the time 38, the speed command profile then generates the target rotation speed over the second fraction of the spin-up time, wherein the control signal 50 in the closed loop control circuitry of FIG. 5D is generated based on this target rotation speed.

FIGS. 6A and 6B show a disk drive according to an embodiment wherein the control circuitry 8 is operable to execute the flow diagram of FIG. 6C during a spin-up operation. The spindle motor is spun up to a target rotation speed using a spin-up controller (block 116). After spinning up the spindle motor, an integrator is initialized based on a state of the spin-up controller (block 118), and the spindle motor is then controlled using a constant-speed controller comprising the integrator (block 120).

FIG. 6D shows control circuitry comprising a spin-up controller 122 operable to spin up the spindle motor 6 using, for example, one or more of the above described techniques. FIG. 6E shows control circuitry according to an embodiment wherein at the end of the spin-up operation, a constant-speed controller 124 is used to control the speed of the spindle motor 6. In the embodiment of FIG. 6E, the constant-speed controller 124 comprises a proportional/integral (PI) controller including a proportional gain Kp 126 for multiplying the error signal 46 and an integrator 128 for integrating the error signal 46. The error signal 46 may be generated as the difference between the measured rotation speed 64 of the spindle motor 6 and a target speed 130 corresponding to a constant rotation speed during normal operation of the disk drive.

In one embodiment, when the control circuitry 8 transitions from the spin-up controller 122 shown in FIG. 6D to the constant-speed controller 124 shown in FIG. 6E, the integrator 128 of the constant-speed controller 124 is initialized based on a state of the spin-up controller 122 in order to minimize any undershoot or overshoot. In one embodiment, the control circuitry 8 will transition from the spin-up controller 122 to the constant-speed controller 124 when the end of the speed command profile is reached at the final target speed (at the end of the spin-up interval), and the error signal 46 is changing at a slow rate which ensures the spin-up controller 122 has reached a steady state. Accordingly, when the spin-up controller 122 has reaches the steady state, the acceleration control signal 50 being generated by the spin-up controller 122 becomes a good candidate for the initial state of the integrator 128 in the constant-speed controller 124. In one embodiment, the control circuitry is operable to initialize the integrator 128 according to:

Accel−Kp·SpeedErr

where Accel represents the acceleration control signal 50 of the spin-up controller 122 at the end of the spin-up operation, Kp represents the gain 126 of the constant-speed controller 124, and SpeedErr represents the error signal 46.

FIG. 7 shows control circuitry according to an embodiment operable to spin up the spindle motor 6 using a combination of the above-described techniques. However, other embodiments may employ fewer of the above described techniques, or a different technique in combination with one or more of the above-described techniques. For example, in some embodiments it may be unnecessary to employ a moving average filter in order to measure the rotation speed 36 of the spindle motor 6 if there is an insignificant misalignment of the poles. Other embodiments may employ a moving average filter in order to measure the rotation speed 36 with or without employing one or more of the other techniques described above.

Any suitable control circuitry may be employed to implement the flow diagrams in the above embodiments, such as any suitable integrated circuit or circuits. For example, the control circuitry may be implemented within a power integrated circuit (PIC), or in a component separate from the PIC, such as a disk controller, or certain operations described above may be performed by a PIC and others by a disk controller. In one embodiment, the PIC and disk controller are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or system on a chip (SOC).

In one embodiment, the control circuitry comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in a SOC. In another embodiment, the instructions are stored on the disk and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.

The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and subcombinations are intended to fall within the scope of this disclosure. In addition, certain method, event or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described tasks or events may be performed in an order other than that specifically disclosed, or multiple may be combined in a single block or state. The example tasks or events may be performed in serial, in parallel, or in some other manner. Tasks or events may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.

While certain example embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions disclosed herein. Thus, nothing in the foregoing description is intended to imply that any particular feature, characteristic, step, module, or block is necessary or indispensable. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions disclosed herein. 

What is claimed is:
 1. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk, wherein: the spindle motor operates according to a plurality of electrical cycles over a single revolution of the spindle motor; and each electrical cycle spans a cycle period; and control circuitry operable to: measure a plurality of the cycle periods; combine at least two of the cycle periods; and measure a rotation speed of the spindle motor based on the combined cycle periods.
 2. The disk drive as recited in claim 1, wherein the spindle motor operates according to N electrical cycles over a single revolution, and the control circuitry is further operable to generate the combined cycle periods by summing N consecutive cycle periods.
 3. The disk drive as recited in claim 1, wherein the control circuitry is further operable to: update the combined cycle periods by summing a running N consecutive cycle periods as each new cycle period is measured; and update the measured rotation speed based on the updated combined cycle periods.
 4. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk; and control circuitry operable to: measure a rotation speed of the spindle motor; generate a gain as a function of the measured rotation speed, wherein the function comprises a polynomial having a degree greater than one; and spin-up the spindle motor based on the gain.
 5. The disk drive as recited in claim 4, wherein the gain comprises a feedback gain operable to amplify a feedback error signal.
 6. The disk drive as recited in claim 5, wherein the feedback error signal represents a difference between the measured rotation speed and a target rotation speed.
 7. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk; and control circuitry operable to: measure a rotation speed of the spindle motor; generate a feed-forward control based on the measured rotation speed; and spin-up the spindle motor based on the feed-forward control.
 8. The disk drive as recited in claim 7, wherein the control circuitry is operable to generate the feed-forward control based on the measured rotation speed and an ambient temperature of the disk drive.
 9. The disk drive as recited in claim 7, wherein the control circuitry is operable to generate the feed-forward control proportional to the measured rotation speed.
 10. The disk drive as recited in claim 9, wherein the feed-forward control compensates for a back electromotive force of the spindle motor.
 11. The disk drive as recited in claim 7, wherein the feed-forward control compensates for a drag torque of the spindle motor.
 12. The disk drive as recited in claim 11, wherein the control circuitry is operable to generate the feed-forward control based on the measured rotation speed and an ambient temperature of the disk drive.
 13. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk; and control circuitry operable to: measure a rotation speed of the spindle motor; generate a control signal based on the measured rotation speed and a speed command profile; and spin-up the spindle motor based on the control signal, wherein the speed command profile ensures a minimum spin-up time and a limited power consumption under a worst case environmental condition.
 14. The disk drive as recited in claim 13, wherein the environmental condition comprises an ambient temperature of the disk drive.
 15. The disk drive as recited in claim 13, wherein the speed command profile accounts for a maximum current draw of the spindle motor.
 16. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk; and control circuitry operable to: measure a rotation speed of the spindle motor; generate a control signal based on a difference between the measured rotation speed and a target rotation speed; and spin-up the spindle motor based on the control signal generated over a second fraction of a spin-up time; wherein: the target rotation speed is generated based on a speed command profile and the second fraction of the spin-up time; and the control circuitry is operable to determine the second fraction of the spin-up time based on an initial measured rotation speed of the spindle motor prior to generating the control signal.
 17. The disk drive as recited in claim 16, wherein the control circuitry is operable to initialize the second fraction of the spin-up time so that an initial target rotation speed is greater than the initial measured rotation speed.
 18. The disk drive as recited in claim 17, wherein the initial target rotation speed ensures the spindle motor continues accelerating from the initial measured rotation speed when the control signal is generated.
 19. The disk drive as recited in claim 18, wherein the control circuitry is further operable to: initially control the spindle motor independent of the control signal for a first fraction of the spin-up time; and after the first fraction of the spin-up time, control the spindle motor based on the control signal for the second fraction of the spin-up time.
 20. A disk drive comprising: a head actuated over a disk; a spindle motor operable to rotate the disk; and control circuitry operable to: spin up the spindle motor to a target rotation speed using a spin-up controller; after spinning up the spindle motor, initialize an integrator based on a state of the spin-up controller; and control the spindle motor using a constant-speed controller comprising the integrator.
 21. The disk drive as recited in claim 20, wherein the state of the spin-up controller comprises an acceleration control signal applied to the spindle motor.
 22. The disk drive as recited in claim 21, wherein the control circuitry is operable to initialize the integrator according to: Accel−Kp·SpeedErr where: Accel represents the acceleration control signal; Kp represents a gain of the constant-speed controller; and SpeedErr represents a difference between a measured rotation speed of the spindle motor and a target rotation speed.
 23. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, wherein the spindle motor operates according to a plurality of electrical cycles over a single revolution of the spindle motor, and each electrical cycle spans a cycle period, the method comprising: measuring a plurality of the cycle periods; combining at least two of the cycle periods; and measuring a rotation speed of the spindle motor based on the combined cycle periods.
 24. The method as recited in claim 23, wherein the spindle motor operates according to N electrical cycles over a single revolution, and the method further comprising generating the combined cycle periods by summing N consecutive cycle periods.
 25. The method as recited in claim 23, wherein the method further comprises: updating the combined cycle periods by summing a running N consecutive cycle periods as each new cycle period is measured; and updating the measured rotation speed based on the updated combined cycle periods.
 26. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, the method comprising: measuring a rotation speed of the spindle motor; generating a gain as a function of the measured rotation speed, wherein the function comprises a polynomial having a degree greater than one; and spinning up the spindle motor based on the gain.
 27. The method as recited in claim 26, wherein the gain comprises a feedback gain operable to amplify a feedback error signal.
 28. The method as recited in claim 27, wherein the feedback error signal represents a difference between the measured rotation speed and a target rotation speed.
 29. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, the method comprising: measuring a rotation speed of the spindle motor; generating a feed-forward control based on the measured rotation speed; and spinning up the spindle motor based on the feed-forward control.
 30. The method as recited in claim 29, further comprising generating the feed-forward control based on the measured rotation speed and an ambient temperature of the disk drive.
 31. The method as recited in claim 29, further comprising generating the feed-forward control proportional to the measured rotation speed.
 32. The method as recited in claim 31, wherein the feed-forward control compensates for a back electromotive force of the spindle motor.
 33. The method as recited in claim 29, wherein the feed-forward control compensates for a drag torque of the spindle motor.
 34. The method as recited in claim 33, further comprising generating the feed-forward control based on the measured rotation speed and an ambient temperature of the disk drive.
 35. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, the method comprising: measuring a rotation speed of the spindle motor; generating a control signal based on the measured rotation speed and a speed command profile; and spinning up the spindle motor based on the control signal, wherein the speed command profile ensures a minimum spin-up time and a limited power consumption under a worst case environmental condition.
 36. The method as recited in claim 35, wherein the environmental condition comprises an ambient temperature of the disk drive.
 38. The method as recited in claim 35, wherein the speed command profile accounts for a maximum current draw of the spindle motor.
 39. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, the method comprising: measuring a rotation speed of the spindle motor; generating a control signal based on a difference between the measured rotation speed and a target rotation speed; and spinning up the spindle motor based on the control signal generated over a second fraction of a spin-up time; wherein: the target rotation speed is generated based on a speed command profile and the second fraction of the spin-up time; and the method further comprises determining the second fraction of the spin-up time based on an initial measured rotation speed of the spindle motor prior to generating the control signal.
 40. The method as recited in claim 39, further comprising initializing the second fraction of the spin-up time so that an initial target rotation speed is greater than the initial measured rotation speed.
 41. The method as recited in claim 40, wherein the initial target rotation speed ensures the spindle motor continues accelerating from the initial measured rotation speed when the control signal is generated.
 42. The method as recited in claim 41, further comprising: initially controlling the spindle motor independent of the control signal for a first fraction of the spin-up time; and after the first fraction of the spin-up time, controlling the spindle motor based on the control signal for the second fraction of the spin-up time.
 43. A method of operating a disk drive comprising a head actuated over a disk, and a spindle motor operable to rotate the disk, the method comprising: spinning up the spindle motor to a target rotation speed using a spin-up controller; after spinning up the spindle motor, initializing an integrator based on a state of the spin-up controller; and controlling the spindle motor using a constant-speed controller comprising the integrator.
 44. The method as recited in claim 43, wherein the state of the spin-up controller comprises an acceleration control signal applied to the spindle motor.
 45. The method as recited in claim 44, further comprising initializing the integrator according to: Accel−Kp·SpeedErr where: Accel represents the acceleration control signal; Kp represents a gain of the constant-speed controller; and SpeedErr represents a difference between a measured rotation speed of the spindle motor and a target rotation speed. 